import logging

import allure
import jsonpath

from utils.send_request import send_jdbc_request


def json_extractor(case,all,res):
    if case["jsonExData"]:
        with allure.step("4.JSON提取"):  # 判断条件成立才可以进行提取

         for key, value in eval(case["jsonExData"]).items():  #  首先要把jsonExData的key,value拆开，items()：遍历这个字典的键值对。key 是要存储提取数据的变量名，value 是用于提取的JSONPath表达式
            value = jsonpath.jsonpath(res.json(), value)[0]
            # print(key)
            # print(value)
            all[key] = value
            # print(all)
        logging.info(f"4.JSON提取，根据{case["jsonExData"]}提取数据，此时全局变量为:{all}")


def jdbc_extractor(case,all):
    if case["sqlExData"]:
        with allure.step("4.JDBC提取"):

         for key, value in eval(case["sqlExData"]).items():  # 首先要把jsonExData的key,value拆开
            # print(key)
            # print(value)

            # 连接

            value = send_jdbc_request(value)
            # print(value)
            all[key] = value
            # print(all)

        logging.info(f"4.JDBC提取，根据{case["sqlExData"]}提取数据，此时全局变量为:{all}")